Most of the computers widely used today are von-Neumann computers. In a von-Neumann computer, programs are stored as data in a storage device, and the programs stored in the storage device are read and executed successively.
Non-von-Neumann computers are also known. Examples of non-von-Neumann computers include a data flow type computer (see, for example, Non-Patent Document 1) and a neuro-computer (see, for example, Non-Patent Document 2).
In a data flow type computer, a program is given in the form of a graph including nodes representing operations, and links between nodes, representing data transfer relations between operations. In the data flow type computer, execution of a process starts when all processes as preconditions of the process are completed. In the data flow type computer, tokens are used for timing adjustment to start various processes.
In a neuro-computer, calculation is done using a neural net, that is, a large number of units coupled to each other. Each unit is a simple operation element modeled after a nerve cell. In the neuro-computer, degree of coupling between units is repeatedly adjusted (referred to as “learning”), in order to minimize error from a desired output (referred to as a “teaching signal”). As a result of repeated learning, the neuro-computer comes to provide correct outputs.
Regarding program creation, genetic programming has been known (see, for example, Non-Patent Document 3). In the genetic programming, a program is represented by nodes representing operations and node topology (such as a tree structure). In the genetic programming, a plurality of such programs in the form of graphs are prepared, and appropriate graphs are screened through cross-over, mutation and selection, whereby an appropriate program is created.
(Peer-to-Peer Technique and Distributed Computing Technique)
Another example of trendy technique is Peer-to-Peer (P2P) technique that enables, for example, distributed computing on the Internet. In Peer-to-Peer system, clients (for example, personal computers) exchange and process data in a distributed manner with each other in an environment not provided with a dedicated server (see, for example, Non-Patent Document 5). Peer-to-Peer technique advantageously allows communication even among a huge number of terminals, as long as there is a margin in line bandwidth.
Here, the distributed computing refers to a method of information processing. In distributed computing, individual portions of a program or a task (job) are executed simultaneously in a parallel manner by a plurality of computers, which communicate with each other through a network. Calculations that require enormous computational resource can be done utilizing a plurality of computers, whereby through-put can be improved than when the calculations is done by a single computer. Peer-to-Peer technique is a possible architecture for the distributed computing as such.
(Network Virtualization)
In a system generally referred to as a communication network or, more specifically, in Peer-to-Peer system described above, a network is physically formed by a plurality of information communication devices (nodes) and communication lines (links) connecting the devices to each other.
Recently, however, a system has come to be practically used in which virtual communication lines between information devices not actually connected directly are regarded as physical communication lines in managing and operating network topology (network configuration). Such virtualization of network is described, for example, in Non-Patent Document 4.
Here, the system in which the system topology is managed and operated regarding the (virtual) communication lines between information devices that are actually not directly connected as physical communication lines is referred to as an overlay system or an overlay network.